package com.maven.sort;

import java.util.Arrays;

/**
 * 选择排序
 *
 * 选择排序，从头至尾扫描序列，找出最小的一个元素，和第一个元素交换，接着从剩下的元素中继续这种选择和交换方式，最终得到一个有序序列。
 * @Author YongQiang
 * @Date 2021/8/11 12:06
 * @Version 1.0
 */
public class SelectSort {
    public static void main(String[] args) {
        int[] arr = {12, 45, 34, 24, 85, 5, 31, 45, 76, 5, 17, 75, 28};
        //swap(arr, 2, 3);
        sort(arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void sort(int[] arr) {
        if (arr.length < 2) {
            return;
        }
        int min = 0;
        for (int i = 0; i < arr.length; i++) {
            min = i;
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[min]) {
                    min = j;
                }
            }
            swap(arr, i, min);
        }
    }

    public static void swap(int[] arr, int a, int b) {
        if (a == b) {
            return;
        }
        arr[a] = arr[a] ^ arr[b];
        arr[b] = arr[a] ^ arr[b];
        arr[a] = arr[a] ^ arr[b];
    }
}
